package imotech.web.mbeans;

import imotech.ejb.dao.ClienteDAO;
import imotech.ejb.dao.FuncionarioDAO;

import java.util.List;
import java.util.Map;

import javax.ejb.EJB;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.RequestScoped;


@ManagedBean(name="clienteMB")
@RequestScoped
public class Cliente {
	
	private int id;
	private String nome;
	private String cpf;
	private String telefone;
	private String email;
	private String senha;
	
	
	@EJB
	ClienteDAO cDAO;


	public int getId() {
		return id;
	}
	public void setId(int id) {
		this.id = id;
	}
	
	
	public String getNome() {
		return nome;
	}
	public void setNome(String nome) {
		this.nome = nome;
	}


	public String getCpf() {
		return cpf;
	}
	public void setCpf(String cpf) {
		this.cpf = cpf;
	}


	public String getTelefone() {
		return telefone;
	}
	public void setTelefone(String telefone) {
		this.telefone = telefone;
	}


	public String getEmail() {
		return email;
	}
	public void setEmail(String email) {
		this.email = email;
	}


	public String getSenha() {
		return senha;
	}
	public void setSenha(String senha) {
		this.senha = senha;
	}

	


	public List<imotech.ejb.model.Cliente> getTodos() {
		return cDAO.todos();
	}
	
	public String cadastrar() throws Exception {
		
		cDAO.cadastrar(preencherModelo());
		
		return "todos.jsp";
	}
	
	public String mostrar(String id) {
		
		imotech.ejb.model.Cliente c = cDAO.buscarId(Integer.parseInt(id));
		
		preencherMB(c);
		
		//System.err.println(f.getNome());
		return "/cliente/mostrar.jsp";
	}
	
	public String cadastrarCliente() {
		
		return "/cliente/cadastrar.jsp";
	}
	
	
	public String exibirEditar() {
		imotech.ejb.model.Cliente c = cDAO.buscarId(this.id);
		
		preencherMB(c);
		
		return "/cliente/editar.jsp";
	}
	
	
	public String editar() throws Exception {
		
		imotech.ejb.model.Cliente c = preencherModelo();
		c.setId(this.id);
	
		cDAO.editar(c);
		
		return mostrar(String.valueOf(id));
	}
	
	
	private void preencherMB(imotech.ejb.model.Cliente c) {
		this.cpf = c.getCpf();
		this.email = c.getEmail();
		this.id = c.getId();
		this.nome = c.getNome();
		this.telefone = c.getTelefone();
	}
	
	private imotech.ejb.model.Cliente preencherModelo() {
		imotech.ejb.model.Cliente c = new imotech.ejb.model.Cliente();
		c.setCpf(this.cpf);
		c.setEmail(this.email);
		c.setNome(this.nome);
		c.setSenha(this.senha);
		c.setTelefone(this.telefone);
		
		return c;
	}

}
